/*
 *  BorderPatrolAI.h
 *  RiskAI
 *
 *  Border Patrol AI only tries to defend his borders. Only attacks when
 *  doing so would make some border-territory no longer a border.
 *
 *  He operates on these priorities:
 *  
 *	  - Pick territories next to my other territories, else just random
 *    - Put troops in borders, higher numbers where there are more enemies around
 *	  - Move/Fortify troops to borders where they are needed most (more enemies around)
 *    - If conquering a territory would make some border-territory no longer a border,
 *			then go for it. Only one per turn though.
 *    - Defend timidly, always use one die
 *
 */

#ifndef BORDER_PATROL_AI_H_INCLUDED
#define BORDER_PATROL_AI_H_INCLUDED

#include "Player.h"

class CBorderPatrolAI : public CPlayer
{
public:
	
	CBorderPatrolAI(int iIndex, CBoard* pxBoard);

	// virtual functions overridden in derived classes
	virtual int PickTerritory(std::vector<int> viAvailables);
	virtual int AssignTroops(int iNumTroops);
	virtual int MoveTroops(int iSourceIndex, int iDestinationIndex);
	virtual RiskAction DecideOnAction(std::vector<int> viViableAttackers);
	virtual int PickDefendingDie(int* aiAttackDice, int iTarget);
	virtual CFortification FortifyTroops(std::vector<int> viFortifiers);

};

#endif // BORDER_PATROL_AI_H_INCLUDED